Image processing may involve application of different processing filters to an image to obtain a resultant image. To verify that the processing filters and related software (e.g., drivers) operate properly, the resultant image output via processing by the filters may be compared to a reference image.
One traditional technique used to verify a resultant image against a reference image involves output of the images to a display device or physical media. Then, a visual comparison of the output images is made, e.g., manually by a developer or other human. When differences are determined through this comparison, the developer may make software changes that cause the resultant image output via processing by the filters to more closely match the reference image. Typically, processing of images using traditional techniques may also involve filters that operate on data for an entire image, such as a Gaussian blur filter or other convolution filter.
Since the traditional verification techniques are manual, these techniques may be labor intensive and provide subjective results. Further, when processing large images the entire image may not fit in memory (e.g., RAM), which makes it difficult to efficiently use memory space and apply filters that operate on data for an entire image. Accordingly, traditional verification techniques may be inefficient, time-consuming, and subject to human error.